﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using KPIS.GERP.GBMS.MODEL;
using KPIS.GERP.GBMS.DAL;
using KPIS.GERP.GBMS.BLL;

namespace KPIS.GERP.GBMS.BLL
{

    public class Project_Factory
    {
        public static IProject GetProjectFactory(string pjType)
        {
            IProject pj = null;

            switch (pjType)
            {
                // โครงการจากคำของบประมาณ
                case "rq":
                    {
                        pj = new Request_BLL();
                        break;
                    }
                // โครงการจากร่างคำของบประมาณ
                case "ap":
                    {
                        pj = new Approval_BLL();
                        break;
                    }
                // โครงการจาก พรบ. งบประมาณ
                case "rc":
                    {
                        pj = new Receive_BLL();
                        break;
                    }
                // บริหารงบประมาณ
                case "pj":
                    {
                        pj = new Project_BLL();
                        break;
                    }


            }

            return pj;
        }

        public static IProjectHeader GetProjectHeaderFactory(string pjType)
        {
            IProjectHeader pj = null;

            switch (pjType)
            {
                // โครงการจากคำของบประมาณ
                case "ap":
                    {
                        pj = new ApprovalHeader_BLL();
                        break;
                    }
                case "md":
                    {
                        pj = new ApprovalHeader_BLL();
                        break;
                    }
                case "rc":
                    {
                        pj = new ReceiveHeader_BLL();
                        break;
                    }
            }

            return pj;
        }

        public static IProjectControl GetProjectControlFactory(string pjType)
        {
            IProjectControl pj = null;

            switch (pjType)
            {
                case "rq":
                    {
                        pj = new RequestControl_BLL();
                        break;
                    }
                case "md":
                    {
                        pj = new ApprovalControl_BLL();
                        break;
                    }
                case "rc":
                    {
                        pj = new ReceiveControl_BLL();
                        break;
                    }
            }

            return pj;
        }

    }
}
